/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package funda.appius.Constructora;

import funda.appius.arquitectura.AbstractFunda;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author payo
 */
public class Usuario extends AbstractFunda {
    
    private int IdUsuario;
    private int IdConstructora;
    private int Puesto , Activado;
    private String Nombre, NombreUsuario, Password,Email;
    
    public int getActivado() {
        return Activado;
    }
    
    public void setActivado(int Activado) {
        this.Activado = Activado;
    }
    
    public String getEmail() {
        return Email;
    }

    public void setEmail(String Email) {
        this.Email = Email;
    }

    public int getIdConstructora() {
        return IdConstructora;
    }

    public void setIdConstructora(int IdConstructora) {
        this.IdConstructora = IdConstructora;
    }

    public int getIdUsuario() {
        return IdUsuario;
    }

    public void setIdUsuario(int IdUsuario) {
        this.IdUsuario = IdUsuario;
    }

    public String getNombre() {
        return Nombre;
    }

    public void setNombre(String Nombre) {
        this.Nombre = Nombre;
    }

    public String getNombreUsuario() {
        return NombreUsuario;
    }

    public void setNombreUsuario(String NombreUsuario) {
        this.NombreUsuario = NombreUsuario;
    }

    public String getPassword() {
        return Password;
    }

    public void setPassword(String Password) {
        this.Password = Password;
    }

    public int getPuesto() {
        return Puesto;
    }

    public void setPuesto(int Puesto) {
        this.Puesto = Puesto;
    }

    
    
    public Usuario()
    {
        super();
    }

    public Usuario(int Puesto, String Nombre, String NombreUsuario, String Password, String Email, int IdConstructora) {
        super();
        this.Puesto = Puesto;
        this.Nombre = Nombre;
        this.NombreUsuario = NombreUsuario;
        this.Password = Password;
        this.Email = Email;
        this.Activado = 0;
        this.IdConstructora = IdConstructora;
        this.IdUsuario = Integer.parseInt(insertarId().toString());
    }
    
    @Override
    protected void fillFunda(ResultSet row) {
        try{
            int x =0;
            this.IdUsuario = row.getInt(++x);
            this.Puesto = row.getInt(++x);
            this.Nombre = row.getString(++x);
            this.NombreUsuario = row.getString(++x);
            this.Password = row.getString(++x);
            this.Email = row.getString(++x);
            this.Activado = row.getInt(++x);
            this.IdConstructora = row.getInt(++x);
        }
        catch(Exception e){}
    }

    @Override
    protected void Comandos() {
        this.id = "IdUsuario";
        this.tabla = "usuario";
        this.strDelete = "DeleteUsuario";
        this.strInsertar = "Insertarusuario";
        this.strInsertarId = "InsertarIdUsuario";
        this.strUpdate = "UpdateUsuario";
    }

    @Override
    public ArrayList<Object> getAtributos() {
        ArrayList<Object> lst = new ArrayList<Object>();
        lst.add(Puesto);
        lst.add(Nombre);
        lst.add(NombreUsuario);
        lst.add(Password);
        lst.add(Email);
        lst.add(Activado);
        lst.add(IdConstructora);
        lst.add(IdUsuario);
        return lst;
    }
    
    @Override
    public Usuario get(Object id) {
        AbstractFunda abs = AbstractFunda.getAbstractFunda(new Usuario(),id,tabla,this.id);
        Usuario c = (Usuario)abs;
        return c;
    }
    
    public ArrayList<Usuario> getAll() {
        List<AbstractFunda> abs = AbstractFunda.getAll(tabla,id,this.getClass());
        ArrayList<Usuario> lst = new ArrayList<Usuario>();
        for(AbstractFunda af : abs)
            lst.add((Usuario)af);
        return lst;
    }
    
}
